// 身份验证中间件
export default defineNuxtRouteMiddleware((to, from) => {
  const { $auth } = useNuxtApp();
  // 公开页面urls
  const publicPages = ['/login', '/register'];
  const isPublicPage = publicPages.includes(to.path);
  // 如果没有令牌且不是登录页面，则重定向到登录页面
  if (!$auth.isAuthenticated && !isPublicPage) {
    return navigateTo({
      path: '/login',
      query: { redirect: to.fullPath }
    });
  }
  
  // 如果有令牌且是登录页面，则重定向到首页
  if ($auth.isAuthenticated && to.path === '/login') {
    // 如果有重定向参数，则导航到该路径，否则导航到首页
    const redirectPath = to.query.redirect || '/';
    return navigateTo(redirectPath);
  }
});